I want to input into a char array and then have a while loop determine where the input terminates. I don't understand why I can't use the above statement though. My book was really vague about the char data type.
6.33.c:11:38: warning: multi-character character constant
6.33.c: In function `main':
6.33.c:11: warning: comparison is always true due to limited range of data type
Code:
#include <stdio.h>
int testPalindrome(char[], int, int);
int main()
{
char string[ 15 ];
int arraySize = 15, nSize = 15;
scanf("%s", &string);
while( string[ arraySize - 1 ] != '/0' ) {
--arraySize;
printf("arraySize: %d\n", arraySize);
}
--arraySize;
nSize = arraySize - 1;
printf("arraySize: %d nSize: %d\n", arraySize, nSize);
printf("%d\n", testPalindrome(string, nSize, arraySize) );
return 0;
}
int testPalindrome(char array[], int n, int size)
{
if (size % 2 == 1 && (size - 1) / 2 == n ) {
// TEST STATEMENT
printf("if 1 n: %d\n", n);
return 1;
}
else if (size % 2 == 0 && (size - 1) / 2 == n) {
// TEST STATEMENT
printf("if 2 n: %d\n", n);
if (array[ n ] == array[ size - n ])
return 1;
else
return 0;
}
else {
// TEST STATEMENT
printf("if 3 n: %d\n", n);
if (array[ n ] == array[ size - n - 1 ])
return testPalindrome(array, n - 1, size);
else
return 0;
}
}